package com.micro.ai.gateway.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * IP过滤配置属性（支持从Nacos动态刷新）
 * 
 * @author micro-ai
 * @since 0.0.1
 * @version 1.0
 */
@Data
@Component
@RefreshScope
@ConfigurationProperties(prefix = "ip-filter")
public class IpFilterProperties {

    /**
     * 是否启用IP过滤
     */
    private boolean enabled = false;

    /**
     * 是否启用白名单模式
     */
    private boolean whitelistEnabled = false;

    /**
     * 是否启用黑名单模式
     */
    private boolean blacklistEnabled = true;

    /**
     * 静态白名单IP列表（优先级最高，支持从Nacos动态刷新）
     */
    private List<String> staticWhitelist = new ArrayList<>();

    /**
     * 初始化默认值
     */
    public IpFilterProperties() {
        // 默认静态白名单
        staticWhitelist.add("127.0.0.1");
        staticWhitelist.add("localhost");
        staticWhitelist.add("::1");
    }
}

